using JTZY.Model.Order.Dto;
using JTZY.Model.Order;
using Infrastructure.Model;

namespace JTZY.Service.Order.IOrderService
{
    /// <summary>
    /// 订单表service接口
    /// </summary>
    public interface ICorecmsorderService : IBaseService<Corecmsorder>
    {
        PagedInfo<CorecmsorderDto> GetList(CorecmsorderQueryDto parm);

        Corecmsorder GetInfo(string OrderId);


        Corecmsorder AddCorecmsorder(Corecmsorder parm);


        PagedInfo<CorecmsorderDto> ExportList(CorecmsorderQueryDto parm);
        int comfir(Corecmsorder modal,long userId);
        WebApiCallBack Pack(OrderPackDto modal);
        Task<WebApiCallBack> Ship(Corecmsorder modal, long userId);

        WebApiCallBack Take(Corecmsorder modal, long userId);
        Task<WebApiCallBack> CancelOrderAndRefund(string orderId);
        Task<WebApiCallBack> CancelOrder(string[] ids, long userId = 0);

        void AfterSalesVal(Corecmsorder order, int afterSaleLevel = 0);
        Task<WebApiCallBack> GetOrderShipInfo(string orderId);
        Task<WebApiCallBack> EditShipStatus(string orderId, Dictionary<int, int> items);
        Task<WebApiCallBack> GetOrderInfoByOrderId(string id, long userId = 0, int aftersaleLevel = 0);
    }
}
